package day0112.jiekou;

import org.junit.Test;

public class Demo {

	@Test
	public void test1() {
		DaYan daYan = new DaYan();
		daYan.eggs();
		daYan.fly();
		
		//虽然new出来的是DaYan这个对象，但是声明的变量bird是站在AbstractBird角度
		//看待new出来的DaYan,所以只能看到AbstractBird里面定义的eggs()这个功能
		AbstractBird bird = new DaYan();
		bird.eggs();
		//The method fly() is undefined for the type AbstractBird
		//方法没有被定义
		//声明父类new子类   没法调用接口里面的方法
		//bird.fly();
		
		
		//站在能不能飞的角度去看待new出来的DaYan，所以只能看到IFly里面定义的fly()这个方法
		IFly fly = new DaYan();
		fly.fly();  //DaYan.fly()
		//fly.eggs();
		
		fly = new Gezi();
		fly.fly();   //结果为Gezi.fly()
	}
	
	
	
}
